/*
 * @Author: cooper
 * @Date: 2025-08-14 00:01:34
 * @Wechat: cmd_develop
 * @Description:
 */
#ifndef __FLASH_H__
#define __FLASH_H__

// 该宏用于从 AT32 芯片的特定寄存器中读取扇区大小的索引信息。
#define SECTOR_SIZE_INDEX (((*(uint32_t *)0xE0042000) >> 12) & 0x07)
#define FLASH_SIZE (*(uint32_t *)0x1FFFF7E0) /* read from at32 flash capacity register(unit:kbyte) */
#define SRAM_SIZE 384                        /* sram size, unit:kbyte */

#define BOOTLOAD_ADDR 0x08000000

// app区的起始地址
#define APP_START_ADDR 0x08004000

#define APP_SIZE 0x30000 // 196KB

// 标志位存放的地址
#define IAP_UPGRADE_FLAG_ADDR (APP_START_ADDR - 0x1000)

// 当应用收到命令为0x5aa5时，将设置此标志
#define IAP_UPGRADE_FLAG 0x41544B38

// 备份区的起始地址
#define BACKUP_START_ADDR (APP_START_ADDR + APP_SIZE)

#endif
